<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>延申函数上面周期</title>
</head>
<body>
    
</body>
<script>
    /*
        函数的声明周期 -- 在JS中函数声明周期是开始谁用到使用结束
            当函数调用结束了以后 那么函数那一块的地址就会被JS给回收 
                当再次调用这个函数的时候 函数又会重新开辟空间  --  见例子1
            
            那么我们怎样延申函数的生命周期的？  也就是说怎样阻止JS自动销毁函数的  
                其实  只要一个数据被使用  那么它就JS就不会销毁掉这个数据   所以我们可以将不想被销毁的数据给return出去 勇哥变量接收使用
                    见例子2
    */
    // 例子1
    function add(){
        let n = 1
        function sum(){
            console.log(++n)
        }
        sum()
    }
    add() //2
    add() //2
    add() //2
    add() //2
    // 由这个例子 就能够很好的明白 函数其实在被调用完了以后就会被销毁

    // 例子2
    function add1(){
        let m = 1
        return function summ(){
            console.log(++m)
        }
    }
    let fun = add1()
    fun()  //2
    fun()  //3
    fun()  //4
    fun()  //5
    // 可见 我们只要将函数的的值给返回出去 这样就能够保存这个函数中的所有的值  这里不仅仅是函数的值  会连那个作用域所有的值都会一起保存
</script>
</html>